home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)tn.d64
/
address book 2.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
19KB
|
513 lines
5 X=1
10 IFREPEAT=.THENRE=1:ONXGOTO5000:GOTO4900
15 GOSUB5400
20 GOSUB265:POKE788,52:PRINTCHR$(142)CHR$(8)
25 OPEN8,8,8,"0:[160]FILES":GOSUB200:GOTO4000
50 IFPEEK(52)-PEEK(50)<3GOTO3200
60 RETURN
100 PRINT"[147]";
105 PRINT:PRINTVT$(4)"[159]LAST NAME, FIRST:[151]":PRINTC2$
110 PRINT" ,[151][157]"FI$(1);:IFFI$(2)<>""THENPRINT", "FI$(2)" ";
115 PRINT:X=LEN(FI$(1))+LEN(FI$(2))+1:IFX>MLTHENPRINTVTAB$(6);:GOSUB180
120 PRINT"[159]STREET:[151]":PRINTC1$:IFFI$(3)<>""THENPRINT" "FI$(3)" ";
125 PRINT:PRINT"[159]CITY, STATE, ZIP:[151]":PRINTC2$
130 PRINT" "FI$(4);:IFFI$(4)="?"THENPRINT:GOTO145
135 IFFI$(5)<>""THENPRINT", "FI$(5);:IFFI$(6)<>""THENPRINT", "FI$(6)" ";
140 PRINT:X=LEN(FI$(4))+LEN(FI$(5))+LEN(FI$(6))+4:IFX>MLTHENPRINTVT$(11);:GOSUB180
145 PRINT"[159]PHONE:[151]":PRINTC1$:IFFI$(7)<>""THENPRINT" "FI$(7)" ";
150 PRINT:PRINT"[159]MAILING CODES:[151]":PRINTC1$:PRINT" "FI$(8)" ";
160 PRINT:PRINT"[159]NOTES:[151]":PRINTC2$:IFFI$(9)<>""THENPRINT" "FI$(9)" "
170 RETURN
180 PRINT",,,?"X-ML"[157] TOO MANY CHARACTERS FOR LABEL[151]":RETURN
200 INPUT#15,A,B$,C,D
210 IF(A<20)OR(A=50)OR(A=62)THENRETURN
220 IFA=70THENIFX<>70THENX=A:CLOSE8:OPEN8,8,8,"0:[160]FILES":GOTO200
230 GOTO3900
250 PRINTVTAB$(19)" PRESS SPACE TO SEARCH FURTHER "
255 PRINT"[159] F7[146] CORRECT OR ERASE RECORD "
260 PRINT"[159] F2[146] PRINT RECORD F8[146] PRINT A LABEL "
265 PRINTVTAB$(22)"[159] F1[146] OLD RECORD F3[146] NEW RECORD"
270 PRINT" F6[146] PRINT MAILING LIST F5[146] NOTES "
275 PRINT" F4[146] SORT/SAVE NEW ENTRIES [182]_[146][181]EXIT[151]";
280 RETURN
284 IFHT<>1THENRETURN
285 PRINTVTAB$(19)"[159] PRESS SPACE TO SEARCH FURTHER ":RETURN
290 PRINTVTAB$(20)" F7[146] CORRECT RECORD [182]?[146][181]ERASE":RETURN
295 PRINTVTAB$(21)" [159][161]H[146][161]HELP WITH COMMAND MENU ":GOTO265
350 IFNU>MFTHENPRINT"[147]"VT$(19)" FILE IS FULL - NO FURTHER ENTRIES [151]":RETURN
360 NU=NU+1:W=NU:HOLD=NU
370 A$=RIGHT$(STR$(1000+W),3)
380 IFLEN(FI$(1))>11THENINDEX$(HO)=FI$(1)+" "+"[139]"+FI$(6)+"[140]"+FI$(8)+A$:GOTO390
385 INDEX$(HO)=FI$(1)+" "+LEFT$(FI$(2),12-LEN(FI$(1)))+"[139]"+FI$(6)+"[140]"+FI$(8)+A$
390 IFASC(IN$(HO))=32ORASC(IN$(HO))>90THENIN$(HO)="^"+A$:NF=NF+1:GOTO200
400 Z=.:GOSUB50:Z=INT(W/256):Y=W-(Z*256)
410 PRINT#15,"P"CHR$(8)CHR$(Y)CHR$(Z)CHR$(1)
420 PRINT#8,FI$(1)R$FI$(2)R$FI$(3)R$FI$(4)R$FI$(5)R$FI$(6)R$FI$(7)R$FI$(8)R$FI$(9)
430 GOSUB200:IFX=70GOTO410
440 NF=NF+1:RETURN
450 Z=INT(W/256):Y=W-(Z*256):GOSUB50
460 PRINT#15,"P"CHR$(8)CHR$(Y)CHR$(Z)CHR$(1)
470 INPUT#8,FI$(1),FI$(2),FI$(3),FI$(4),FI$(5),FI$(6),FI$(7),FI$(8),FI$(9)
480 GOSUB200:IFX=70THENX=.:GOTO460
490 RETURN
500 GOSUB50:OPEN1,0
510 PRINT:PRINTVTAB$(5)TAB(3);
520 INPUT#1,FIELD$(1),FI$(2):IFPEEK(214)<>4GOTO510
525 IFFI$(1)=""THENCLOSE1:FORX=1TO9:FI$(X)="":NEXT:GOSUB100:HT=1:RETURN
530 IFFI$(2)=""THENGOSUB950:IFFI$(2)=""THENPRINTVTAB$(5)"?? "FI$(1)", ?":GOTO510
540 PRINT:PRINTVTAB$(8)TAB(3);
550 INPUT#1,FI$(3):IFPEEK(214)<>7GOTO540
560 IFFI$(3)="? "ORFI$(3)="?"GOTO625
565 IFLEN(FI$(3))>MLTHENFI$(3)=LEFT$(FI$(3),ML):GOSUB100:GOTO540
570 PRINT:PRINTVTAB$(10)TAB(3);
580 INPUT#1,FI$(4),FI$(5),FI$(6):IFPEEK(214)<>9GOTO570
585 IFFI$(4)="?"ORFI$(4)=""GOTO625
590 IFFI$(6)<>""THENA=6:GOSUB845
595 IFFI$(5)=""THENIFFI$(6)=""THENA=4:GOSUB845:GOSUB865:GOSUB805:GOTO610
600 IFFI$(6)=""THENA=5:GOSUB845:GOSUB865:IFFI$(5)<>""THENGOSUB830
605 IFFI$(5)=""THENGOSUB800
610 IFFI$(5)=""ORFI$(6)=""THENPRINTVTAB$(10)"?":GOTO570
620 IFZ<>ATHENIFFI$(6)<>"? "THENIFLEN(FI$(6))<5THENPRINTVT$(10)"??":Z=A:GOTO570
625 PRINT:PRINTVTAB$(13)TAB(3);
630 INPUT#1,FI$(7):IFPEEK(214)<>12GOTO625
645 PRINT:PRINTVTAB$(15)TAB(3);
650 INPUT#1,FI$(8):IFPEEK(214)<>14GOTO645
655 PRINT:PRINTVTAB$(17)TAB(3);
660 INPUT#1,FI$(9):IFPEEK(214)<>16THENIFPEEK(214)<>17THENPRINT:PRINTVT$(19)CL$:GOTO655
665 FORA=1TO9:GOSUB845:IFFI$(A)=""THENFI$(A)="?"
670 NEXT
675 Y=0:FORX=1TO9:Y=Y+LEN(FI$(X)):NEXT:Z=LEN(FI$(9))
680 IFZ<(Y+9-LG)THENPRINTVT$(20)" FILE TOO LONG [151][146] ":GOTO510
685 IFLG<(Y+9)THENFI$(9)=LEFT$(FI$(9),Z+LG-Y-9):GOSUB100:GOTO655
690 GOSUB105
695 PRINT:CLOSE1
700 GOSUB290:GOSUB260:IFHT=1THENGOSUB285
710 GETC$:IFC$<>""GOTO710
720 GETC$:IFC$=""GOTO720
730 IFC$="[137]"THENGOSUB2250:GOSUB2200:GOSUB290:GOSUB260:GOSUB284:GOTO710
740 IFC$="[140]"THENGOSUB2250:OPEN4,4:GOSUB2000:CLOSE4:GOSUB290:GOSUB260:GOSUB284:GOTO710
750 IFC$="[136]"THENGOSUB100:GOTO500
760 IFC$="?"THENFORX=1TO9:FI$(X)="":NEXT:RETURN
770 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO720
780 IFC$<>" "THENIFC$<>"_"THENIFASC(C$)<133ORASC(C$)>140GOTO720
790 RETURN
800 A=4:GOSUB845
805 IFFI$(4)=""THENRETURN
810 Y=LEN(FI$(4)):FORX=YTO1STEP-1:FT$=MID$(FI$(4),X,1)
815 IFFT$=" "THENFI$(5)=RIGHT$(FI$(4),Y-X):FI$(4)=LEFT$(FI$(4),X-1):GOTO830
820 NEXT:PRINT:PRINTVTAB$(10)TAB(3)FI$(4)", ":RETURN
830 A=4:GOSUB845
840 PRINT:PRINTVT$(10)C1$:PRINTVTAB$(10)TAB(3)FI$(4)", "FI$(5)", "FI$(6):RETURN
845 FQ$=FI$(A)
850 Y=LEN(FQ$):IFY=.THENRETURN
855 FORX=YTO1STEP-1:FT$=MID$(FQ$,X,1):IFFT$=" "THENNEXT
860 FQ$=LEFT$(FQ$,X):FI$(A)=FQ$:RETURN
865 IFX=.THENRETURN
870 FORY=XTO1STEP-1:FT$=MID$(FQ$,Y,1):IFASC(FT$)<48 OR ASC(FT$)>57GOTO880
875 NEXTY
880 FI$(6)=MID$(FQ$,Y+1)
885 IFFT$=" "THENY=Y-1
890 FQ$=LEFT$(FQ$,Y):GOSUB850
895 FI$(A)=FQ$:RETURN
950 Y=LEN(FI$(1)):FORX=YTO1STEP-1:FT$=MID$(FI$(1),X,1):IFFT$=" "THENNEXT
955 FI$(1)=LEFT$(FI$(1),X)
960 Y=LEN(FI$(1)):FORX=YTO1STEP-1:FT$=MID$(FI$(1),X,1)
970 IFFT$=" "THENFI$(2)=LEFT$(FI$(1),X-1):FI$(1)=RIGHT$(FI$(1),Y-X):GOTO990
980 NEXT
990 PRINT:PRINTVTAB$(5)TAB(3)FI$(1)", "FI$(2):RETURN
1000 FORZ=0TO9:FI$(Z)="":NEXT
1005 PRINT"[147]":PRINTTAB(11)"ENTER NAME SOUGHT":GOSUB105
1010 PRINTVTAB$(19)" *[146] DISPLAY ENTIRE LIST"
1015 PRINT" ADD A LETTER TO BEGIN AFTER A
1020 [153]:[153]" ^WAIT VIEW ERASED RECORDS"
1025 [153]" TO RETRIEVE - PRESS F7WAITPOKE
1040 GOSUB50:OPEN1,0
1045 PRINT:PRINTVTAB$(5)TAB(3);
1050 INPUT#1,FIELD$(1),FI$(2):IFPEEK(214)<>4THENIFPEEK(214)<>5GOTO1045
1055 CLOSE1
1060 IFFI$(1)=""THENC$="":FORX=1TO9:FI$(X)="":GOSUB100:GOTO295
1070 PRINT""CL$:IFFI$(2)=""THENGOSUB950:GOTO1120
1080 Y=LEN(FI$(2)):FORX=YTO1STEP-1:FT$=MID$(FI$(2),X,1):IFFT$=" "THENNEXT
1100 FI$(2)=LEFT$(FI$(2),X)
1110 IFFI$(2)="?"ORFI$(2)="*"THENFI$(2)=""
1120 F1$=FI$(1):F2$=FI$(2):IFFI$(2)<>""THENFI$(2)=" "+FI$(2)
1125 IFMID$(FI$(1),2,1)="*"THENFI$(1)="*"+LEFT$(FI$(1),1)
1130 SEEK$=LEFT$((FI$(1)+FI$(2)),13):IFLEN(FI$(1))>12THENSE$=FI$(1)
1135 LN=LEN(SE$)
1140 IFLEFT$(SE$,1)="*"THENFI$(0)="*":SE$=MID$(SE$,2,1):LN=1:IFSE$=""THENSE$="A"
1150 W=.:FOR HOLD=1TONU
1160 IFLEN(IN$(HO))=4THENIFSE$<>"^"THENNEXT:GOTO1300
1170 IFFI$(0)="*"THENIFASC(SE$)<ASC(IN$(HO))THENSE$=LEFT$(IN$(HO),1)
1180 IFSE$<>LEFT$(IN$(HO),LN)THENNEXT:GOTO1300
1190 W=VAL(RIGHT$(IN$(HO),3)):GOSUB450:GOSUB105:GOSUB250
1200 GETC$:IFC$<>""GOTO1200
1210 GETC$:IFC$=""GOTO1210
1220 IFC$="[136]"THENHT=1:PRINT"[147]":GOSUB100:GOSUB500:GOSUB100:GOSUB370:GOSUB250:HT=.
1230 IFC$=" "THENNEXT:GOTO1300
1240 IFC$="[137]"THENGOSUB2250:GOSUB2200:GOSUB250:GOTO1200
1250 IFC$="[140]"THENGOSUB2250:OPEN4,4:GOSUB2000:CLOSE4:GOSUB250:GOTO1200
1260 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO1210
1270 IFASC(C$)<133ORASC(C$)>140THENIFC$<>"_"GOTO1210
1280 HO=NU:NEXT:GOTO1300
1300 IFW=.GOTO1350
1310 FI$(1)=F1$:FI$(2)=F2$:FORX=3TO9:FI$(X)="":NEXT:GOSUB105
1320 PRINTVTAB$(19)CL$
1330 PRINT" NO FURTHER MATCH ";
1340 GOSUB295:RETURN
1350 PRINT""CL$:PRINTVTAB$(19)CL$
1360 PRINTVTAB$(20)" NO SUCH RECORD ":GOSUB295
1370 C$="":RETURN
2000 IFFI$(4)="?"THENRETURN
2010 IFASC(FI$(1))<91THENPRINT#4,""SPC(LM);:IFFI$(2)<>"?"THENPRINT#4,FI$(2)" ";
2020 IFASC(FI$(1))<91THENPRINT#4,FI$(1)
2030 PRINT#4,""SPC(LM)FI$(3)
2040 PRINT#4,""SPC(LM)FI$(4)", "FI$(5)" "FI$(6)
2050 PRINT#4,R$,R$,R$;
2060 IFASC(FI$(1))>90THENPRINT#4,R$;
2070 RETURN
2100 IFFI$(4)="?"THENRETURN
2105 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(1))))
2110 IFFI$(2)<>"?"THENLA$(1)=LA$(1)+A$+FI$(2)+" "+FI$(1)
2115 IFFI$(2)="?"THENLA$(1)=LA$(1)+A$+FI$(1)
2120 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(2))))
2125 LA$(2)=LA$(2)+A$+FI$(3)
2130 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(3))))
2135 LA$(3)=LA$(3)+A$+FI$(4)+", "+FI$(5)+" "+FI$(6)
2140 LC=LC+1:IFLC<LATHENRETURN
2150 PRINT#4,""SPC(LM)LA$(1)
2160 PRINT#4,""SPC(LM)LA$(2)
2170 PRINT#4,""SPC(LM)LA$(3)
2175 PRINT#4,R$,R$,R$;
2180 LA$(1)="":LA$(2)="":LA$(3)="":LC=0
2190 RETURN
2200 OPEN4,4
2205 PRINT#4,""SPC(LM)FI$(1)", "FI$(2)SPC(ML-LEN(FI$(1))-LEN(FI$(2)))"PHONE: "FI$(7)
2210 PRINT#4,""SPC(LM);:IFFI$(4)="?"THENIFFI$(8)="?"GOTO2230
2215 IFFI$(4)<>"?"THENPRINT#4,FI$(3)", "FI$(4)", "FI$(5)" "FI$(6);
2220 IFFI$(8)<>"?"THENPRINT#4," ("FI$(8)")";
2225 PRINT#4,R$SPC(LM);
2230 IFFI$(9)<>"?"THENPRINT#4,"NOTE: "FI$(9)
2240 PRINT#4,R$;:IFC$="[137]"THENCLOSE4
2245 RETURN
2250 OPEN1,0:PRINTVTAB$(19)CL$
2255 PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:LM$=MID$(STR$(LM),2)
2260 PRINTVTAB$(20)"LEFT MARGIN: (0 TO"MM" SPACES)[151]":PRINTLM$
2265 PRINTVTAB$(20)
2270 INPUT#1,LM$:IFPEEK(214)<>20THENPRINTVT$(20);:GOTO2255
2275 CLOSE1
2280 IFLM$<>""THENIFASC(LM$)<58THENIFASC(LM$)>47THENLM=VAL(LM$):IFLM>MMTHENLM=MM
2285 LM$=MID$(STR$(LM),2):PRINTVTAB$(21)CL$:PRINT"[145]"LM$"[159]"
2290 RETURN
2300 PRINT"[147] * MAIL LIST PRINT OPTIONS * "
2310 PRINT:PRINT"PRINT ENTIRE LIST: (Y OR N)":PRINT"Y"
2320 PRINT"PRINT LIST BEGINNING WITH: (LETTER)":PRINT"A"
2330 PRINT"PRINT ONLY NAMES WITH THESE CODES:"
2340 PRINT:PRINT"DO NOT PRINT NAMES WITH THESE CODES:"
2350 PRINT:PRINT"PRINT ONLY THIS ZIP CODE:"
2360 PRINT"(ALL OR ONLY FIRST PART)"
2370 PRINT:PRINT"DO NOT PRINT THIS ZIP CODE:"
2380 PRINT"(ALL OR ONLY FIRST PART)"
2390 PRINT:PRINT"LABEL FORMAT: (1 OR 2 ACROSS) FILE: (0)":PRINT"[151]1"
2400 GOSUB50:OPEN1,0
2405 PRINTVTAB$(4)"[151]"
2407 INPUT#1,C$:IFPEEK(214)<>4GOTO2405
2410 P1=.:C$=LEFT$(C$,1):IFC$="Y"THENP1=1:PRINTVTAB$(5)C$
2415 IFP1THENP2$="A":GOTO2470
2417 IFC$<>"Y"THENIFC$<>"N"THENC$="":CLOSE1:GOSUB3600:GOTO2650
2420 PRINTVTAB$(6)
2422 INPUT#1,P2$:IFPEEK(214)<>6GOTO2420
2425 P2$=LEFT$(P2$,1):IFP2$=""THENP2$="A"
2427 PRINTVTAB$(7)P2$
2430 PRINTVTAB$(8)
2435 INPUT#1,PY$:IFPEEK(214)<>8GOTO2430
2440 PRINTVTAB$(10)
2445 INPUT#1,PN$:IFPEEK(214)<>10GOTO2440
2450 PRINTVTAB$(13)
2455 INPUT#1,ZY$:IFPEEK(214)<>13GOTO2450
2460 PRINTVTAB$(16)
2465 INPUT#1,ZN$:IFPEEK(214)<>16GOTO2460
2470 PRINTVTAB$(18)
2471 INPUT#1,LABEL$:IFPEEK(214)<>18GOTO2470
2472 LA$=LEFT$(LA$,1):IFLA$<>"2"THENIFLA$<>"0"THENLA$="1"
2473 LABEL=VAL(LA$):LCOUNT=.
2474 PRINTVTAB$(19)LA$:LA=LA-3*(LA=0)
2475 GOSUB2255
2480 PRINTVTAB$(20)" PRESS F7[146] TO CORRECT ENTRIES "
2485 PRINT" PRESS SPACE TO BEGIN PRINTING":GOSUB265
2490 GETC$:IFC$=""GOTO2490
2491 IFC$="[136]"THENPRINTVT$(20)CL$:PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:GOTO2400
2492 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO2490
2493 IFASC(C$)>132ANDASC(C$)<141ORC$="_"THENPRINT"[147]":GOTO2650
2494 IFC$<>" "GOTO2480
2495 PRINTVTAB$(20)" PRESS RUN/STOP KEY TO END PRINT OUT [151]"
2497 PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$
2500 OPEN4,4:FORHO=1TONUMBER:IFASC(P2$)=<ASC(IN$(HO))GOTO2510
2505 NEXT:PRINTVTAB$(20)" NO ENTRIES TO PRINT.":GOSUB265:GOTO2645
2510 FORHOLD=HOTONU:Z=LEN(IN$(HO))-3
2520 FORX=1TOZ:IFMID$(IN$(HO),X,1)="[139]"GOTO2524
2522 NEXT:NEXTHOLD:GOTO2635
2524 X=X+1:FORY=XTOZ:IFMID$(IN$(HO),Y,1)="[140]"GOTO2528
2526 NEXT
2528 FI$(6)=MID$(IN$(HO),X,Y-1):FI$(8)=MID$(IN$(HO),Y+1,Z)
2535 IFP1GOTO2600
2540 IFZN$<>""THENIFZN$=LEFT$(FI$(6),LEN(ZN$))GOTO2620
2545 IFZY$<>LEFT$(FI$(6),LEN(ZY$))GOTO2620
2550 IFPY$=""GOTO2575
2555 IFFI$(8)="?"GOTO2620
2560 FORX=1TOLEN(PY$):FORY=1TOLEN(FI$(8))
2565 IFMID$(PY$,X,1)=MID$(FI$(8),Y,1)GOTO2575
2570 NEXT:NEXT:GOTO2620
2575 IFPN$=""ORFI$(8)="?"GOTO2600
2580 FORX=1TOLEN(PN$):FORY=1TOLEN(FI$(8))
2585 IFMID$(PN$,X,1)=MID$(FI$(8),Y,1)GOTO2620
2590 NEXT:NEXT
2600 IFPEEK(197)=63THENHO=NU:NEXT:GOTO2645
2610 W=VAL(RIGHT$(IN$(HO),3)):GOSUB450:ONLAGOSUB2000,2100,2205
2620 IFPEEK(197)=63THENHO=NU:NEXT:GOTO2645
2630 NEXTHOLD
2635 IFLA$(1)<>""THENGOSUB2150
2640 PRINTVTAB$(20)" NO FURTHER ENTRIES. "
2645 C$="":CLOSE4
2650 GOTO295
3000 FORZ=1TO9:FI$(Z)="":NEXT
3010 PRINT"[147]"TAB(11)"ENTER NEW RECORD[151]"
3020 GOSUB105:GOSUB500:IFHT=1THENHT=.:C$="":GOTO295
3030 IFFI$(1)=""THENC$="[134]":RETURN
3040 HO=NU+1:FORX=NUTO1STEP-1
3050 IFLEN(IN$(X))>4THENHO=X+1:X=.:A$=RIGHT$(IN$(HO),3):W=VAL(A$)
3060 NEXT
3070 IFHO<=NUTHENGOSUB380
3080 IFHO>NUTHENGOSUB350
3085 IFC$<>" "THENRETURN
3090 PRINTVTAB$(20)" PRESS F3[146] TO ENTER ANOTHER NAME[151] "
3100 PRINTCL$
3110 GOTO265
3200 PRINT" SORRY, DELAY IS TO CLEAR MEMORY SPACE"
3210 CLOSE8:IFNF=.THENGOTO3250
3220 SYS49350,NU,IN$(1):OPEN2,8,2,"@0:[160]INDEX,S,W":GOSUB200
3230 PRINT#2,NUMBER:GOSUB200
3240 FORX=1TONUMBER:PRINT#2,INDEX$(X):NEXT:GOSUB200:CLOSE2:NF=.:GOSUB200
3250 FORX=1TONU:IN$(X)="":NEXT:FORX=1TO25:VT$(X)="":NEXT
3260 IFZTHENFORX=0TO9:FI$(X)="":NEXT:C$=""
3270 A$="":B$="":C1$="":C2$="":FT$="":FQ$="":CL$="":R$=""
3280 X=FRE(0)
3290 GOSUB5350
3300 OPEN2,8,2,"0:[160]INDEX,S,R":GOSUB200
3310 INPUT#2,NUMBER
3320 FORX=1TONUMBER:IF ST THEN CLOSE2:GOTO3340
3330 INPUT#2,INDEX$(X):NEXT
3340 CLOSE2:GOSUB200
3350 OPEN8,8,8,"0:[160]FILES":GOSUB200:PRINT""CL$:RETURN
3500 PRINT"[147]"VTAB$(8)TAB(2)"SORTING[160]AND SAVING - PLEASE WAIT..."
3510 IFNF>.THENSYS49350,NU,IN$(1)
3520 Y=0:FOR X=NUTO1STEP-1:IFLEN(IN$(X))=4THENY=Y+1:NEXT
3525 IFX>.THENX=.:NEXT
3530 PRINTVTAB$(12)TAB(10)"THERE ARE"NU-Y"RECORDS"
3535 CLOSE8:IFNF=.THEN3590
3540 PRINT:PRINTTAB(9)NF"CHANGED OR ADDED
3550 NF[178].:[159]2,8,2,"@0:CLOSEINDEX,S,W"
3560 [141]200:[152]2,NUMBER:[141]200
3570 [129]X[178]1[164]NUMBER:[152]2,INDEX$(X):[130]:[141]200
3580 [160]2:[141]200
3590 [139]NS[167][158]49155:[141]200
3595 NS[178].:[159]8,8,8,"0:CLOSEFILES":[141]200
3600 [153]""VTAB$(20)[163]13)"PLEASE PROCEED":[142]
3900 [139]NU[179][177].[167][139][194](49686)[178]96[167][139][194](788)[178]52[167]C[178][171]1
3910 [160]8:[158]65511:[139]C[179][177][171]1[167][153][199](9):[151]788,49:[128]
3920 [153]"LOAD"VTAB$(10)A," "B$:[153]
3930 [153]" DO YOU HAVE NEW ENTRIES TO SAVE?":[153]
3940 [153]" IF SO, CORRECT DISK ERROR THEN PRESS":[153]
3950 [153][163]15)"SPACE BAR
3960 GETC$:IFC$=""GOTO3960
3970 IFC$<>" "THENC=.:GOTO3910
3980 OPEN15,8,15:GOSUB3500:C=.:GOTO3910
4000 GETC$
4010 IFC$=""GOTO4000
4020 IFC$="[133]"THENGOSUB1000:GOTO4010
4030 IF C$="[134]"THEN GOSUB3000:GOTO4010
4040 IFC$="[138]"THENGOSUB3500:GOSUB295:GOTO4000
4050 IFC$="[139]"THENGOSUB2300:GOTO4010
4060 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO4000
4070 IF C$="_"THENGOSUB3500:GOTO3910
4080 IFC$="H"THENPRINT"[147]":GOSUB5020:GOSUB5400:GOSUB265:GOTO4000
4090 GOTO4000
4900 PRINT"[147]"CHR$(142):POKE53280,3:POKE53281,1
4905 PRINT" * GEMINI 10X/15X TYPE STYLE CONTROL *
4910 [153]:[153]"CHOOSE THE TYPE STYLE YOU WISH:
4915 PRINT:PRINT" 1 STANDARD STYLE, NORMAL DENSITY
4920 [153]" 2 STANDARD STYLE, EMPHASIZED DENSITY
4925 PRINT" 3 ITALIC STYLE, NORMAL DENSITY
4930 [153]" 4 ITALIC STYLE, EMPHASIZED DENSITY
4935 PRINT:PRINT"ENTER A NUMBER FROM 1 TO 4":PRINT"PRESS RETURN KEY
4940 [153]:[153]"POKE1CMD";
4945 A$[178]"A":[159]1,0:[132]1,A$:[160]1
4950 X[178]1:[139]A$[179][177]""[167][139][198](A$)[177]49[167][139][198](A$)[179]53[167]X[178][197](A$)
4960 [159]4,4:[152]4,[199](27)"@";:[145]X[137]4990,4970,4980,4970
4970 [152]4,[199](27)"E";:[139]X[178]2[137]4990
4980 [152]4,[199](27)[199](52);
4990 [160]4
5000 [153]"LOAD"[199](142):[151]53280,3:[151]53281,1:[141]5020:[137]5095
5020 [153][163]12)"* ADDRESS FILE *
5025 PRINT" TO RETRIEVE A RECORD, PRESS F1[146] AND
5030 [153]" ENTER ALL OR PART OF A NAME.
5035 PRINT:PRINT" IF YOU ENTER PART OF A NAME,
5040 [153]" THE PROGRAM WILL FIND ALL MATCHES.
5045 PRINT:PRINT" TO ADD A NEW RECORD, PRESS F3[146]
5050 [153]:[153]" THE PROGRAM WILL RECOGNIZE MOST
5055 PRINT" NAMES IN FIRST NAME LAST NAME ORDER.
5060 [153]:[153]" PRESS RETURNWAIT KEY - NOT CRSRWAIT KEY
5070 PRINT" FOR EACH LINE ENTERED AND TO MOVE
5075 [153]" DOWN FOR CORRECTIONS.
5080 PRINT:PRINT" PRESS F5[146] TO VIEW AND WRITE TO NOTE
5085 [153]" PAGE SCREEN. THIS SCREEN IS SAVED
5090 PRINT" WITH THE ADDRESS FILES.":RETURN
5095 PRINT:PRINTTAB(11)"PLEASE WAIT...
5100 [134] VTAB$(25):[141]5350:[134] INDEX$(MF)
5200 [159]15,8,15,"I"
5210 [159]2,8,2,"0:CLOSEINDEX,S,R":[141]200
5220 [139]A[179][177]62[137]5250
5230 [160]2:NUMBER[178].:[137]10000
5250 [132]2,NUMBER
5260 [129]X[178]1[164]NUMBER:[139] ST [167] [160]2:[137]5300
5270 [132]2,INDEX$(X):[130]
5280 [160]2
5300 [147]"CLOSE(ML)/NOTES/SORT",8,1
5310 [137]15
5350 VT$(1)[178]"":[129]X[178]2[164]25:VT$(X)[178]VT$(X[171]1)[170]"":[130]
5360 A$[178]" ?":B$[178]",,,,,,,,,,,,,,,,,,,,,,,,":C1$[178]A$[170]B$[170]" POKEON"
5370 C2$[178]A$[170]B$[170]B$[170]" POKEONON"
5380 CL$[178]" "
5390 R$[178][199](13):ML[178]34:MM[178]80[171]ML:MF[178]700:LG[178]150:DS[178]36:[142]
5400 [153]VTAB$(23)[163]7)"PRESS SPACE TO CONTINUE
5410 GET C$:IF C$<>""GOTO5410
5420 GET C$:IF C$=""GOTO5420
5430 PRINT"[147]"TAB(10)"* PRINT FACILITIES *
5435 [153]:[153]" 'MAILING CODE' MAY BE ANY NUMBER
5436 PRINT" OF LETTERS OR NUMBERS TO BE KEYED
5437 [153]" INDIVIDUALLY. THEY CONTROL WHICH
5438 PRINT" LABELS ARE PRINTED FROM THE FILES.
5440 [153]:[153]" PRESS F6WAIT FOR MAILING LIST PRINT OUT.
5450 PRINT:PRINT" F8[146] PRINTS A SINGLE NAME AND ADDRESS
5460 [153]" LABEL AND F2WAIT PRINTS A SINGLE RECORD.
5465 PRINT:PRINT" PRESS F4[146] AFTER ALL NEW NAMES ARE
5470 [153]" ENTERED AND BEFORE PRINTING A LIST
5475 PRINT" TO ALPHABETIZE NAMES AND ADD THEM
5480 [153]" PERMANENTLY TO THE FILES ALONG WITH
5485 PRINT" NEW NOTE PAGE ENTRIES. THE[170]_[146][180]KEY
5490 [153]" ALSO DOES THIS AND EXITS PROGRAM.
5495 PRINT:PRINT" MENU WILL APPEAR HERE:[182]H[146][181]TO REVIEW
6000 [142]
9000 [153]"LOAD"VTAB$(8)" WRONG DISK! THIS SHORTENED VERSION OF
9010 PRINT:PRINT" ADDRESS BOOK BY FRANK VAN DEVENTER
9020 [153]:[153]" REQUIRES PREVIOUSLY ESTABLISHED
9030 PRINT:PRINT" DISK FILES TO WORK.":END
10000 IFPEEK(46)<70GOTO9000
10005 PRINT" NEW DISK FILE - 5 MIN SETUP TIME
10010 Z[178][181](MF[173]256):Y[178]MF[171](Z[172]256)
10015 [151]788,52:[159]8,8,8,"0:CLOSEFILES,L,"[170][199](LG):[141]200
10020 [152]15,"P"[199](8)[199](Y)[199](Z)[199](1):[141]200
10030 [139]A[178]50[167][152]8,LG:[137]10020
10040 [160]8:[141]49000
10050 [151]56576,197:[151]648,188:[151]53272,245
10060 [153]"LOAD"VTAB$(24)[163]3)"NOTES - PRESS RETURNWAIT KEY TO RETURN";
10070 [158]49155:[151]56576,199:[151]648,4:[151]53272,21
10080 NU[178]1:IN$(1)[178]"^001":[141]3550:[160]8:[141]5430:[137]20
49000 Y[178]49152:[139][194](49686)[178]96[167][142]
49010 [135]X:[139]X[179].[167][142]
49020 [151]Y,X:Y[178]Y[170]1:[137]49010
50000 [131]76,68,192,169,5,162,8,160,1,32,186,255,169,19,162,49,160,192,32,189
50010 [131]255,169,0,133,251,169,188,133,252,165,1,72,41,254,133,1,169,251,162
50020 [131]27,160,194,32,216,255,104,133,1,96,64,48,58,160,40,77,76,41,47,78,79
50030 [131]84,69,83,47,83,79,82,84,162,0,189,0,216,157,0,168,189,0,217,157,0,169
50040 [131]189,0,218,157,0,170,189,0,219,157,0,171,232,208,229,169,197,141,0,221
50050 [131]169,188,141,136,2,133,210,169,245,141,24,208,173,134,2,162,0,157,0
50060 [131]216,157,0,217,157,0,218,157,0,219,232,208,241,165,1,72,41,254,133,1
50070 [131]32,207,255,162,0,134,212,134,216,189,0,168,157,0,216,189,0,169,157
50080 [131]0,217,189,0,170,157,0,218,189,0,171,157,0,219,232,208,229,104,133,1
50090 [131]169,21,141,24,208,169,4,141,136,2,133,210,169,199,141,0,221,96,32,253
50100 [131]174,32,158,173,32,247,183,165,20,133,253,165,21,133,254,32,253,174
50110 [131]32,158,173,162,1,165,71,157,27,194,157,67,194,165,72,157,47,194,157
50120 [131]87,194,165,253,208,2,198,254,198,253,160,3,24,189,67,194,101,253,157
50130 [131]67,194,189,87,194,101,254,157,87,194,136,208,236,189,27,194,133,80
50140 [131]189,47,194,133,81,189,67,194,133,82,189,87,194,133,83,32,219,193,144
50150 [131]4,202,208,228,96,165,82,133,78,165,83,133,79,160,2,177,78,153,250,0
50160 [131]136,16,248,48,11,24,165,80,105,3,133,80,144,2,230,81,160,2,177,80,153
50170 [131]247,0,136,16,248,32,230,193,144,230,56,165,82,233,3,133,82,176,2,198
50180 [131]83,32,219,193,176,31,160,2,177,82,153,247,0,136,16,248,32,230,193,176
50190 [131]225,160,2,177,80,145,82,185,247,0,145,80,136,16,244,48,183,160,2,177
50200 [131]80,145,78,185,250,0,145,80,136,16,244,24,189,27,194,125,67,194,133
50210 [131]82,189,47,194,125,87,194,133,83,102,83,102,82,32,219,193,176,22,189
50220 [131]27,194,157,28,194,189,47,194,157,48,194,32,251,193,232,32,11,194,76
50230 [131]13,193,189,67,194,157,68,194,189,87,194,157,88,194,32,11,194,232,32
50240 [131]251,193,76,13,193,165,81,197,83,208,4,165,80,197,82,96,160,255,200
50250 [131]196,247,176,11,196,250,176,6,177,248,209,251,240,241,96,196,250,96
50260 [131]24,165,80,105,3,157,27,194,165,81,105,0,157,47,194,96,56,165,80,233
50270 [131]3,157,67,194,165,81,233,0,157,87,194,96,-1
50500 X[178][194](43)[170][194](44)[172]256:C[178]10001
50510 A[178][194](X):B[178][194](X[170]1):X[178]A[170]256[172]B:[139][194](X[170]2)[170]256[172][194](X[170]3)[179]C[137]50510
50520 A[178]A[170]2:[139]A[177]255[167]A[178]A[171]256:B[178]B[170]1
50530 [151]X,0:[151]X[170]1,0:[153]"LOADP(null)45,"A":P(null)46,"B":C(null):?CLEFT$(147)":[151]631,13:[151]198,1:[128]
50599 LOCATI[145] [129] [143] STATEMENTS BELOW IS THE NUMBER AFTER HASH MARK EG: /9
50600 [173]9 [143] INTRO SCREENS/INNITIALIZE/LOAD NOTES $ INDEX/POKE DISABLES STOP KEY
50605 [173]49 [143] CHECK FREE MEMORY
50610 [173]99 [143] PRINT FILE TO SCREEN
50620 [173]199 [143] CHECK ERROR CHANNEL
50630 [173]249 [143] PRINT COMMAND MENU
50640 [173]349 [143] ADD/CHANGE ENTRY TO INDEX$ AND DISK
50650 [173]399 [143] STORE TO RELATIVE FILE
50660 [173]449 [143] GET RECORD FROM DISK
50670 [173]499 [143] INPUT RECORD FIELDS
50680 [173]699 [143] CORRECT, PRINT OR STORE
50690 [173]799 [143] SEPARATE CITY, STATE, ZIP
50700 [173]844 [143] REMOVE TERMINAL SPACES
50710 [173]864 [143] SEPARATE TERMINAL ZIP CODE
50720 [173]949 [143] BRING NAME TO LAST, FIRST ORDER
50730 [173]999 [143] FIND OLD RECORD / 1ST GET REQUEST
50740 [173]1149 [143] NAME SEARCH LOOP
50750 [173]1999 [143] PRINT NAME & ADDRESS
50760 [173]2099 [143] MULTI LABEL FORMAT & PRINTOUT / DS IS DOUBLE LABLE SPACING
50770 [173]2199 [143] PRINT ENTIRE RECORD
50775 [173]2249 [143] GET LEFT MARGIN SIZE
50780 [173]2299 [143] MAIL LIST PRINT OPTIONS SCREEN
50790 [173]2399 [143] INPUT PRINT COMMANDS
50800 [173]2499 [143] PRINT LIST / 1ST DECODE INDEX STRING
50810 [173]2999 [143] CREATE NEW RECORD
50815 [173]3199 [143] GARBAGE COLLECTION
50820 [173]3499 [143] SORT & STORE INDEX FILE
50830 [173]3899 [143] CLOSING ROUTINES
50840 [173]3999 [143] INPUT TO MAIN MENU
50845 [173]4949 [143] SET GEMINI PRINT MODE
50850 [173]4999 [143] INNITIALIZATION ROUTINES / INDEX$()=FILE INDEX
50860 [173]5199 [143] OPEN INDEX & CHECK IF NEW FILE / NU=CURRENT NUMBER OF FILES
50870 [173]5249 [143] READ INDEX FILE
50875 [173]5345 [143] FIXED VARIABLES DEFINED: 5350-5390 / DS=DOUBLE LABEL SPACING
50880 [173]5346 ML[178]MAX LABEL [195]GTH [173] 80 USED AS MAXIMUM [153]ER LINE [195]GTH IN MM
50885 [173]5347 MF[178]MAX # OF FILES [173]LG[178]MAX FILE SIZE (CHANGE THESE [145]LY [129] [162] DISK)
50890 [173]5348 INDEX FILE [145] DISK NEEDS 1 BLOCK [170] 1 BLOCK [184]E [129] EACH 10 NAMES
50895 [173]5349 STRING FUNCTI[145]: VT$() CREATES VERTICAL TAB, CL$ CLEARS [145]E LINE
50900 [173]5399 [143] PRINT SECOND SCREEN
50905 [173]10005 [143] ESTABLISH RELATIVE FILE
50910 [173]10049 [143] ESTABLISH NOTES SCREEN & SAVE WITH MACHINE LANGUAGE PROGRAMS
50920 [173]10079 [143] ESTABLISH INDEX FILE
50930 [173]48999 [143] LOADER - MACH LANG PGMS
50940 [173]50499 [143] PROGRAM SHORTENING ROUTINE
51000 A "?" MARK CAN BE SUBSTITUTED [129] FIRST NAME & WILL [168] [153] [145] THE LABEL
51005 LAST NAME PRECEEDED BY [174] WILL [168] S[164]RE BUT WILL [153] ADDRESS [145]LY LABEL.
51010 USE '[138] 10' [164] SET [153] MODE [145] A GEMINI [153]ER.
51015 [139] USED WITH MOSTLY AMERICAN ZIP CODES, CHANGE [179]5 [164] [179][177]5 IN LINE 620
51020 MAXIMUM FILE [195]GTH [175] MAXIMUM NUMBER OF FILES ARE SET IN LINE 5390.
51025 [145]E DISK HOLDS 700 FILES. [172] [153] ROUTINES ARE ALL BETWEEN 2000 & 2245.
51045 .
51050 [172][172][172] ADDRESS BOOK [172][172][172]
51055 .
51060 BY FRANK VAN DEVENTER
51065 .
51070 [164] USE PROGRAM, [148] IT FIRST [164] A BLANK [129]MATTED DISK. [167] [138] PROGRAM
51080 WITH THAT DISK IN THE DISK DRIVE. THE FIRST [138] ESTABLISHES THE FILE [145]
51090 THE DISK [175] TAKES MUCH L[145]GER (4.5 MINUTES) THAN SUBSEQUENT [138]S. THE
51100 PROGRAM MAY BE SH[176]TENED [164] [147] M[176]E QUICKLY [145]CE A FILE IS ESTABLISHED.
51110 JUST ENTER: '[138] 50500' & PROGRAM SH[176]TENS ITSELF [164] LINE 10000.(2[173]7 0FF)
51120 [148] [175] USE THIS SH[176]TER PROGRAM IN PLACE OF THE L[145]GER VERSI[145]. IT USES
51130 LESS MEM[176]Y NEEDED [129] STRING S[164]RAGE [175] IT W[145]'T TRY [164] CREATE A
51140 RELATIVE FILE [145] EVERY [162] DISK IT SEES. [VERS 5[173]28[173]85C]